Xen running NetBSD and three Linux distributions |
|
Developer(s) | The Xen Project XenSource, Inc. |
---|---|
Initial release | 2003 |
Stable release | 4.1.2[1] / October 21, 2011 |
Operating system | Linux, and other Unix-like, *BSD, OpenSolaris as both hosts and guests; Microsoft Windows as a guest OS. |
Type | Virtual machine monitor |
License | GNU GPL v2 |
Website | http://www.xen.org/ |
Xen (pronounced /ˈzɛn/) is a virtual-machine monitor providing services that allow multiple computer operating systems to execute on the same computer hardware concurrently.
The University of Cambridge Computer Laboratory developed the first versions of Xen. Since 2010, the Xen community develops and maintains Xen as free software, licensed under the GNU General Public License (GPLv2). Xen is available for the IA-32, x86-64, Itanium and ARM computer architectures.
In Xen systems the Xen hypervisor is the lowest and most privileged software layer.[2] This layer supports one or more guest operating systems, scheduled on the physical CPUs. The first guest operating system, called in Xen terminology domain 0 (dom0) is executed automatically when the hypervisor boots and receives special management privileges and direct access to all physical hardware by default. The system administrator can log into dom0 in order to manage any additional guest operating systems, called user domains (domU) in Xen terminology.
The dom0 domain is typically a modified version of Linux, NetBSD or Solaris. User domains may either be unmodified copies of open-source or proprietary operating systems, such as Microsoft Windows, if the host processor supports x86 virtualization, e.g., Intel VT-x and AMD-V),[3] or modified, para-virtualized operating system with special drivers that support enhanced Xen features.
Contents |
Xen originated as a research project at the University of Cambridge, led by Ian Pratt, senior lecturer at Cambridge and founder of XenSource, Inc. This company now supports the development of the free software project and also sells enterprise versions of the software. The first public release of Xen occurred in 2003. Citrix Systems acquired XenSource, Inc in October 2007 and subsequently renamed Xensource's products under the Citrix brand:
Subsequently the product lines have been renamed XenServer (Free), Essentials for XenServer Enterprise, and Essentials for XenServer Platinum.
On 22 October 2007, Citrix Systems completed its acquisition of XenSource,[4] and the Xen project moved to http://www.xen.org/. This move had started some time previously, and made public the existence of the Xen Project Advisory Board (Xen AB), which had members from Citrix, IBM, Intel, Hewlett-Packard, Novell, Red Hat, Sun Microsystems and Oracle. The Xen AB charter assigns it oversight of the project's code-management procedures, and with development of a new trademark policy for the Xen mark, which Citrix intends to freely license to all vendors and projects that implement the Xen hypervisor; the Xen AB will have sole responsibility for the requirements of licensing.
On 21 October 2009, Citrix further announced their non-commercial XenServer would be fully open-source and made freely available to the public under the name Xen Cloud Platform (XCP).[5] Simon Crosby, CTO of Virtualization and Management division at Citrix, stated: "XenServer is 100% free, and also shortly fully open sourced. There is no revenue from it at all."
The product lines were renamed in Spring 2010 [6]:
Version | Release date | Notes |
---|---|---|
1.0 | 2003-10-02[7][8] | |
2.0 | 2004-11-05[9] | |
3.0 | 2005-12-05[10][11] |
The releases up to 3.0.4 also added:
|
3.1 | 2007-05-18[15] | |
3.2 | 2008-01-17[16] | PCI passthrough and ACPI S3 standby mode for the host system. |
3.3 | 2008-08-24[17] | Improvements for the PCI passthrough and the power management. |
3.4 | 2009-05-18[18] | Contains a first version of the "Xen Client Initiative", shortly XCI. |
4.0 | 2010-04-07[19] | Makes it possible to use a dom0 Linux kernel, which has been implemented by using PVOps. A Linux kernel of version 2.6.31 has been modified for this purpose, because the official Linux kernel actually doesn't support the usage as dom0 kernel (date July 2010).[20] |
4.1 | 2011-03-25[21] | Some of the improvements: Support for more than 255 processors, better stability. Linux kernel v2.6.37 and onward support usage as dom0 kernel ([22]). |
Virtual machine monitors (also known as hypervisors) often operate on mainframes and large servers running IBM, HP, and other systems. Internet hosting service companies increasingly use hypervisors to provide virtual private servers. Amazon EC2, Fujitsu Global Cloud Platform,[23] Linode, and Rackspace Cloud use Xen as the VM hypervisor.[24]
Server virtualization can provide benefits such as:
Xen's support for virtual machine live migration from one host to another allows workload balancing and the avoidance of downtime.
Virtualization also has benefits when working on development (including the development of operating systems): running the new system as a guest avoids the need to reboot the physical computer whenever a bug occurs. Sandboxed guest systems can also help in computer-security research, allowing study of the effects of some virus or worm without the possibility of compromising the host system.
Finally, hardware appliance vendors may decide to ship their appliance running several guest systems, so as to be able to execute various pieces of software that require different operating systems.
Xen can run as a virtualization platform, such as Citrix XenServer Enterprise Edition (formerly XenSource's XenEnterprise), or embedded within the host operating system. As an example of the latter configuration, note the inclusion of Xen in:
In 2007, XenSource announced that Dell would incorporate Citrix XenServer OEM Edition as an embedded hypervisor installed in flash memory as an option on all PowerEdge servers, early in 2008.[25] By May 2010 however, Citrix and their OEM partners (including Dell) decided to retire the flash memory embedded OEM XenServer editions. Only the XenServer 5.6 Retail Edition is available for PowerEdge servers from Dell. Customers currently running the Dell OEM XenServer 5.5 edition (or earlier) can upgrade to preserve their virtual machines' configuration data.[26]
XenSource has also started developing a compatibility layer for Windows Server 2008 hypervisor, so that systems modified to run as Xen guests will also function on the 2008 hypervisor.[27]
On most CPUs, Xen uses a form of virtualization known as paravirtualization, meaning that guests run a modified operating system using a special hypercall ABI instead of certain architectural features. Through paravirtualization, Xen can achieve high performance even on its host architecture (x86) which has a reputation for non-cooperation with traditional virtualization techniques.[28][29]
On x86, the Xen host kernel code runs in Ring 0, while the hosted domains run in Ring 1 or in Ring 3.
Both Intel and AMD have contributed modifications to Xen to support their respective Intel VT-x and AMD-V architecture extensions.[30] Though these technologies differ quite substantially in their implementation and instruction sets, Xen manages them via a common abstraction layer, enabling unmodified guest operating systems to run within Xen virtual machines, starting with Xen 3.0.
This development allows the virtualization of proprietary operating systems (such as Microsoft Windows), since the guest system's kernel does not require modification when the host runs on Intel VT-x or AMD-V hardware.
Hardware-assisted virtualization (HVM) offers new instructions to support direct calls by a paravirtualized guest/driver into the hypervisor, typically used for I/O or other so-called hypercalls. It also provides additional execution modes: "root mode" and "non-root mode". Both of these modes have Rings 0-3; the Xen host operates in root mode and has access to the real hardware, while the unmodified guest operates in Rings 0-3 of non-root mode, with its "hardware" accesses under complete control of the hypervisor.
Xen-HVM has device emulation based on the QEMU project to provide I/O virtualization to the virtual machines. The system emulates hardware via a patched QEMU "device manager" (qemu-dm) daemon running as a backend in dom0. This means that the virtualized machines see as hardware: a PIIX3 IDE (with some rudimentary PIIX4 capabilities), Cirrus Logic or vanilla VGA emulated video, RTL8139 or NE2000 network emulation, PAE, and somewhat limited ACPI and APIC support and no SCSI emulation.[31]
Xen 3.0.2 supports the following unmodified guests:
Administrators can "live migrate" Xen virtual machines between physical hosts across a LAN without loss of availability. During this procedure, the LAN iteratively copies the memory of the virtual machine to the destination without stopping its execution. The process requires a stoppage of around 60–300 ms to perform final synchronization before the virtual machine begins executing at its final destination, providing an illusion of seamless migration. Similar technology can serve to suspend running virtual machines to disk and switch to another virtual machine, resuming the first virtual machine at a later date.
Xen under Linux runs on x86, with Pentium II or newer processors, x86-64 based systems, as well as on IA-64 and PowerPC. Xen supports up to 64-way symmetric multiprocessing. Xen boots from a bootloader such as GNU GRUB, and then usually loads a modified host operating system into the host domain (dom0). As of 2009[update], most Linux distributions had included Xen packages to interact with the Xen hypervisor and start additional domains, but because Xen was not accepted into the mainline Linux kernel and installation required several kernel patches, some distros such as Red Hat Enterprise Linux 6 and Ubuntu 8.10 dropped out-of-the-box support for dom0 in subsequent releases. With the inclusion of the most significant parts of Xen in the Linux 2.6.37 mainline kernel in early 2011, several distributions are again considering dom0 support.[32][33] Version 3.0 of the Linux kernel supports dom0 and domU in the mainline kernel.[34]
Guest systems can run fully virtualized (which requires hardware support) or paravirtualized (which requires a modified guest operating system). The following systems have patches allowing them to operate as paravirtualized Xen guests:
Xen version 3.0 introduced the capability to run Microsoft Windows as a guest operating system unmodified if the host machine's processor supports hardware virtualization provided by Intel VT-x (formerly codenamed Vanderpool) or AMD-V (formerly codenamed Pacifica).
During the development of Xen 1.x, Microsoft Research, along with the University of Cambridge Operating System group, developed a port of Windows XP to Xen — made possible by Microsoft's Academic Licensing Program. The terms of this license do not allow the publication of this port, although documentation of the experience appears in the original Xen SOSP paper.[44]
James Harper and the Xen open-source community have started developing GPL'd Paravirtualisation drivers for Windows. These provide front-end drivers for the Xen block and network devices, and allow much higher disk and network performance for Windows systems running in HVM mode. Without these drivers all disk and network traffic has to be processed through QEMU-DM.
Third-party developers have built a number of tools (known as Xen Management Consoles) to facilitate the common tasks of administering a Xen host, such as configuring, starting, monitoring and stopping of Xen guests. Examples include:
Novell's PlateSpin Orchestrate also manages Xen virtual machines for Xen shipping in SUSE Linux Enterprise Server.